package com.example.showdemo.viewmodel;

import android.text.TextUtils;

import androidx.lifecycle.MutableLiveData;

import com.example.showdemo.model.IModel;

public class ViewModel implements IViewModel {

    private IModel model = null;
    // View 绑定的数据，inputText 和 handledText 更新后会自动通知 View 更新界面
    MutableLiveData<String> inputText = new MutableLiveData();
    MutableLiveData<String> handledText  = new MutableLiveData();

    init {
        // 注册数据监听，数据改变后通知 Model 去处理数据
        inputText.observeForever {
            handleText(it) }
        handledText.value = "default msg";
    }

    public void  handleText(String text) {
        if (TextUtils.isEmpty(text)) {
            handledText.value = "default msg";
            return;
        }
        handledText.value = "handle data ...";
        model.handleData(text);
    }

    // 清空按钮的点击事件绑定
    public void  clearData() {
        model.clearData();
    }

    public void setModel(IModel model) {
        this.model = model;
        model.setViewModel(this);
        }

    // Model 数据处理完成，设置 handledText 的值，自动更新到界面
    public void dataHandled(String data) {
        handledText.value = data;
    }

    // Model 数据处理完成，设置 inputText 的值，自动更新到界面
    public void dataCleared() {
        inputText.value = "";
    }
}
